// pages/test4/test4.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    result:'等待获取token',
  },

 /**
     * 获取token按钮按下：
     */
    gettoken(){
      console.log("开始获取。。。");//打印完整消息
      var that=this;  //这个很重要，在下面的回调函数中由于异步问题不能有效修改变量，需要用that获取
      wx.request({
        url: 'https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens',
        data: {
          "auth": {
            "identity": {
              "methods": [
                "password"
              ],
              "password": {
                "user": {
                  "domain": {
                    "name": "GT-2301_81266702"
                  },
                  "name": "GT-2301_81266702",
                  "password": "Lmcindy6388"
                }
              }
            },
            "scope": {
              "project": {
                "name": "cn-east-3"
              }
            }
          }
        },
        method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
        header: {'content-type': 'application/json' }, // 请求的 header 
        success: function(res){// success
          // success
            console.log("获取token成功");//打印完整消息
            console.log(res);//打印完整消息
            var token='';
token=JSON.stringify(res.header['X-Subject-Token']);//解析消息头token
token=token.replaceAll("\"", "");
console.log("获取token=\n"+token);//打印token
wx.setStorageSync('token',token);//把token写到缓存中,以便可以随时随地调用
        },
        fail:function(){
            // fail
            console.log("获取token失败");//打印完整消息
        },
        complete: function() {
            // complete
            console.log("获取token完成");//打印完整消息
        } 
    });
    },
    touchBtn_gettoken:function()
    {
      console.log("获取token按钮按下");
      this.setData({result:"获取token按钮按下"}),
      this.gettoken();
    },
    /**
     * 获取设备影子按钮按下：
     */
    touchBtn_getshadow:function()
    {
        console.log("获取设备影子按钮按下");
        this.setData({result:"获取设备影子按钮按下"}),
        this.getshadow();
    },
    getshadow:function(){
      console.log("开始获取影子");//打印完整消息
      var that=this;  //这个很重要，在下面的回调函数中由于异步问题不能有效修改变量，需要用that获取
      var token=wx.getStorageSync('token');//读缓存中保存的token
      console.log("我的toekn:"+token);//打印完整消息
      wx.request({
          url: 'https://92aad16b61.st1.iotda-app.cn-east-3.myhuaweicloud.com:443/v5/iot/72dbf1784ff04685985c53fba5220913/devices/6810ab2d3878983101479033_smart_pill_box_lm/shadow',
          data:'',
          method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
          header: {'content-type': 'application/json','X-Auth-Token':token }, //请求的header 
          success: function(res){// success
            // success
              console.log(res);//打印完整消息
              var shadow=JSON.stringify(res.data.shadow[0].reported.properties);
console.log('设备影子数据：'+shadow);
 //以下根据自己的设备属性进行解析
 //我的设备影子：{"Temp":30,"temp":89,"Dev_data":77.20592,"humi":80,"light":3000,"GPS_N":3904.2279,"GPS_E":11706.2279,"warning":1,"MPU6050":1,"foot":12,"led":1,"temps":"89"}
 var temperature=JSON.stringify(res.data.shadow[1].reported.properties.temperature);
 var humidity=JSON.stringify(res.data.shadow[1].reported.properties.humidity);
 var illumination=JSON.stringify(res.data.shadow[1].reported.properties.illumination);
 var smoke=JSON.stringify(res.data.shadow[1].reported.properties.smoke);
 var motorStatus=JSON.stringify(res.data.shadow[1].reported.properties.motorStatus);
 console.log('温度='+temperature+'℃');
 console.log('湿度='+humidity+'%');
 console.log('亮度='+illumination+'Lux');
 console.log('烟雾浓度='+smoke+'ppm');
 console.log('电机状态='+motorStatus);
 that.setData({result:'温度'+temperature+'℃,湿度'+humidity+'%,亮度'+illumination+'Lux,烟雾浓度'+smoke+'ppm,电机状态'+motorStatus});

          },
          fail:function(){
              // fail
              console.log("获取影子失败");//打印完整消息
          },
          complete: function() {
              // complete
              console.log("获取影子完成");//打印完整消息
          } 
      });
  },




     /**
     * 设备命令下发按钮按下：
     */
    touchBtn_setCommand:function()
    {
        console.log("设备命令下发按钮按下");
        this.setCommand();
    },  
    setCommand:function(){
      console.log("开始下发命令。。。");//打印完整消息
      var that=this;  //这个很重要，在下面的回调函数中由于异步问题不能有效修改变量，需要用that获取
      var token=wx.getStorageSync('token');//读缓存中保存的token
      wx.request({
          url: 'https://92aad16b61.st1.iotda-app.cn-east-3.myhuaweicloud.com:443/v5/iot/72dbf1784ff04685985c53fba5220913/devices/6810ab2d3878983101479033_smart_pill_box_lm/commands',
          data:{
            "service_id": "get_data",
            "command_name": "motor_control",
            "paras": {
              "onoff": "ON"
            }
          },
          method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
          header: {'content-type': 'application/json','X-Auth-Token':token }, //请求的header 
          success: function(res){// success
              // success
              console.log("下发命令成功");//打印完整消息
              console.log(res);//打印完整消息
              
          },
          fail:function(){
              // fail
              console.log("命令下发失败");//打印完整消息
              console.log("请先获取token");//打印完整消息
          },
          complete: function() {
              // complete
              console.log("命令下发完成");//打印完整消息
              that.setData({result:'设备命令下发完成'});
          } 
      });
  },



  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})